package geralItemPedido;

import org.nakedobjects.extended.Cardinality;
import org.nakedobjects.extended.CompositeAssociation;
import org.nakedobjects.extended.Entity;
import org.nakedobjects.extended.Way;
import org.nakedobjects.extended.CompositeAssociation.CompositeType;
import org.nakedobjects.object.AbstractNakedObject;

@Entity
public class ItemPedido extends AbstractNakedObject{
	
	@CompositeAssociation(
			cardinality = Cardinality.ManyToOne, 
			compositeType = CompositeType.Physical, 
			fieldRelatedName = "itenspedidos", 
			relatedWith = NotaFiscal.class, 
			way = Way.TwoWay 
			)
	private NotaFiscal notafiscal;
	
	public void setNotafiscal(NotaFiscal notafiscal) {
		this.notafiscal = notafiscal;
		objectChanged();
	}

	public NotaFiscal getNotafiscal() {
		resolve(notafiscal);
		return notafiscal;
	}
	
	@CompositeAssociation(
			cardinality = Cardinality.ManyToOne, 
			compositeType = CompositeType.Physical, 
			fieldRelatedName = "itenspedidos", 
			relatedWith = Departamento.class, 
			way = Way.TwoWay 
			)
	
	private Departamento departamento ;
	private Cliente cliente;
	private Produto produto; 
	private Pedido pedido;
	
	
	public Pedido getPedido() {
		resolve(cliente);
		return pedido;
	}


	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
		objectChanged();
	}


	public void setDepartamento(Departamento departamento) {
		this.departamento = departamento;
		objectChanged();
	}
	
	
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
		objectChanged();
	}
	
	public void setProduto(Produto produto) {
		this.produto = produto;
		objectChanged();
	}
	
	public Cliente getCliente() {
		resolve(cliente);
		return cliente;
	}
	
	public Produto getProduto() {
		resolve(produto);
		return produto;
	}
	

	public Departamento getDepartamento() {
		resolve(departamento);
		return departamento;
	}
}
